home *** CD-ROM | disk | FTP | other *** search
/ Biodiversity of Illinois 2: Woodland Habitats / Biodiversity of Illinois 2 - Woodland Habitats.iso / mac / casts / PDFxtraBehaviors.cst / 00043_Script_PDF_ZoomTo < prev    next >
Text File  |  2006-07-11  |  3KB  |  98 lines

  1. -- Zoom To
  2.  
  3. Property pEvent, pSprite, pZoom, pScale, pAlertFlag
  4.  
  5. on doZoomTo me
  6.   case pZoom of:
  7.     "Fit in Window": set m = #fitInWindow
  8.     "Actual Size": set m = #actualSize
  9.     "Fit Width": set m = #fitWidth
  10.     "Fit Height": set m = #fitHeight
  11.     "Fit Visible":  set m = #fitVisible
  12.     otherwise: 
  13.       if (pScale<8) or (pScale>1600) then
  14.         alert "Invalid zoom value"
  15.         exit
  16.       else
  17.         set m = #useScale
  18.       end if
  19.   end case
  20.   set err = PDF_ZoomTo(sprite pSprite, m, pScale)
  21.   if PDF_status(sprite pSprite) then alert "PDF Behavior Error"&RETURN&PDF_error(sprite pSprite)
  22. end doZoomTo
  23.  
  24. on mouseUp me
  25.   if (pEvent = #mouseUp) then doZoomTo(me)
  26. end mouseUp
  27.  
  28. on mouseDown me
  29.   if (pEvent = #mouseDown) then doZoomTo(me)
  30. end mouseDown
  31.  
  32. on prepareFrame me
  33.   if (pEvent = #prepareFrame) then doZoomTo(me)
  34. end prepareFrame
  35.  
  36. -- standard behavior stuff --
  37. on getPropertyDescriptionList me
  38.   set defaultValues = GetDefaultValues (me)
  39.   
  40.   set pdfSpriteList = getProp (defaultValues, #spriteList)
  41.   set defSprite     = getProp (defaultValues, #defaultSprite)
  42.   if (defSprite=0) then 
  43.     if the ticks - pAlertFlag > 10 then
  44.       alert "Please create a sprite of type PDF first."
  45.     end if
  46.     set pAlertFlag = the ticks -- The ticks when the user clicked "OK"
  47.     
  48.     exit
  49.   end if
  50.   set p_list = [#pEvent: [ #comment: "Event", #format:#symbol, #range:[#mouseUp, #mouseDown, #prepareFrame], #default:#mouseUp], #pSprite: [ #comment: "PDF Sprite is in channel:", #format:#symbol, #range:pdfSpriteList, #default:defSprite], #pZoom: [ #comment: "Zoom to:", #format:#symbol, #range:["Fit in Window", "Actual Size", "Fit Width", "Fit Height", "Fit Visible", "Other (specify below)"], #default:"Fit Visible"], #pScale: [ #comment: "Other (8..1600):", #format:#integer, #default:""]]
  51.   return p_list
  52. end
  53.  
  54. on getBehaviorDescription
  55.   return "Zoom to specified view (Fit in Window, Actual Size, Fit Width, Fit Height, Fit Visible) or to specified percentage (8% to 1600%)" &RETURN& "Free to use and abuse. (c)1999, Integration New Media, Inc."  &RETURN& "Thanks to James Newton for his suggestions"
  56. end
  57.  
  58. -- utils --
  59. on GetDefaultValues me
  60.   if the currentSpriteNum then
  61.     set spriteList = GetSpriteList (me #PDF)
  62.     if count (spriteList) then
  63.       set defaultSprite = getAt (spriteList, 1)
  64.     else
  65.       set defaultSprite = 0
  66.     end if
  67.     
  68.     return [#spriteList: spriteList, #defaultSprite: defaultSprite]
  69.     
  70.   else -- the currentSpriteNum = 0
  71.     -- Director is merely recompiling this script: return dummy values
  72.     return [#spriteList: [1], #defaultSprite: 1]
  73.   end if
  74. end 
  75.  
  76.  
  77. on GetSpriteList me, memberType
  78.   -- return list of sprites of type memberType in current frame
  79.   global version
  80.   if (char 1 of version = 6) then
  81.     set maxSprite = 120
  82.   else
  83.     set maxSprite = the lastChannel
  84.   end if
  85.   
  86.   set aList=[]
  87.   
  88.   repeat with i = 1 to maxSprite
  89.     set spriteMember = the member of sprite i
  90.     -- if (string(m) contains "member 0") then next repeat -- unnecessary
  91.     if (the type of spriteMember = memberType) then -- (JN) Line break
  92.       append (aList, i)
  93.     end if
  94.   end repeat
  95.   
  96.   return aList
  97. end GetSpriteList
  98.